
import http from "@/axios/index.js";
import { handleError, handleSuccess } from "@/utils/responseHandler.js";

export const SysConfigApi = {
    /**
     * 获取所有系统配置
     */
    getAllConfigs: () => {
        return http.get('/config/all')
            .then(res => handleSuccess(res, '获取系统配置成功'))
            .catch(error => handleError(error, '获取系统配置', '获取系统配置失败'));
    },

    /**
     * 更新系统配置
     * @param {Object} config - 配置信息
     */
    updateConfig: (config) => {
        return http.put('/config/update', config)
            .then(res => handleSuccess(res, '更新系统配置成功'))
            .catch(error => handleError(error, '更新系统配置', '更新系统配置失败'));
    },

    /**
     * 刷新配置缓存
     */
    refreshCache: () => {
        return http.post('/config/refreshCache')
            .then(res => handleSuccess(res, '刷新缓存成功'))
            .catch(error => handleError(error, '刷新缓存', '刷新缓存失败'));
    },

    /**
     * 获取公共配置
     */
    getPublicConfigs: () => {
        return http.get('/config/public')
            .then(res => handleSuccess(res, '获取公共配置成功'))
            .catch(error => handleError(error, '获取公共配置', '获取公共配置失败'));
    },

    /**
     * 查询配置变更历史
     * @param {Object} params - 查询参数
     * @param {number} [params.configId] - 配置ID
     * @param {string} [params.startTime] - 开始时间
     * @param {string} [params.endTime] - 结束时间
     */
    getConfigHistory: (params) => {
        return http.get('/config/history', { params })
            .then(res => handleSuccess(res, '获取配置历史成功'))
            .catch(error => handleError(error, '获取配置历史', '获取配置历史失败'));
    }
};